package cn.zwx.member.svc.service;

import cn.zwx.base.exception.BizWrapException;
import cn.zwx.base.utils.PageUtil;
import cn.zwx.member.svc.dto.MemberGroupCreateDTO;
import cn.zwx.member.svc.dto.MemberGroupPageDTO;
import cn.zwx.member.svc.dto.MemberGroupUpdateDTO;
import cn.zwx.member.svc.vo.MemberGroupSimpleVO;
import cn.zwx.member.svc.vo.MemberGroupVO;

import java.util.List;

/**
 * @author zhangwenxue
 */
public interface MemberGroupService {
    /**
     * 创建用户分组
     * @param dto 请求参数
     * @return 返回信息
     */
    Long createGroup(MemberGroupCreateDTO dto) throws BizWrapException;

    /**
     * 更新用户分组
     * @param dto 请求参数
     * @return 返回参数
     */
    Boolean updateGroup(MemberGroupUpdateDTO dto) throws BizWrapException;

    /**
     * 删除用户分组
     * @param id 分组id
     * @return 返回参数
     */
    Boolean deleteGroup(Long id) throws BizWrapException;

    /**
     * 根据id获取用户分组信息
     * @param id 分组id
     * @return 返回参数
     */
    MemberGroupVO getGroup(Long id);

    /**
     * 获取会员分组精简信息列表
     * @return 返回参数
     */
    List<MemberGroupSimpleVO> getSimpleGroupList();

    /**
     * 获取会员分组分页
     * @param pageVO 请求参数
     * @return 返回参数
     */
    PageUtil<MemberGroupVO> getGroupPage(MemberGroupPageDTO pageVO);
}
